专利摘要:
A method for decoding an image, according to the present invention, comprises the steps of: determining whether to divide a current block using a quadtree; determining whether to divide the current block using a binary tree, when the current block is not divided using the quadtree; determining the form of binary tree partition for the current block, when the current block is determined to be divided using the binary tree; and dividing the current block into two partitions according to the form of the binary tree which has been determined.
公开号:ES2711230A2
申请号:ES201990024
申请日:2017-09-20
公开日:2019-04-30
发明作者:Bae Keun Lee
申请人:KT Corp;
IPC主号:
专利说明:

[0001]
[0002]
[0003]
[0004] Technical field
[0005]
[0006] The present invention relates to a method and an apparatus for processing video signals.
[0007]
[0008] Background of the technique
[0009]
[0010] Currently, requests for high resolution and high quality images have increased as the definition of high definition (HD) and ultra high definition (UHD) images have increased in various fields of application. However, the higher resolution and image quality data have increasing amounts of data compared to conventional image data. Therefore, when image data is transmitted using a medium such as conventional wireless and wireband broadband networks, or when image data is stored using a conventional storage medium, the cost of transmission and storage increases. To solve these problems that occur with an increase in the resolution and quality of image data, high efficiency image coding / decoding techniques can be used.
[0011]
[0012] Image compression technology includes various techniques, including: an inter-prediction technique for the prediction of a pixel value included in a current instantaneous of an instant before or after the current instantaneous; an intra prediction technique of predicting a pixel value included in a current instantaneous using pixel information in the current instantaneous; an entropla coding technique for assigning a short code to a value with a high frequency of occurrence and assignment of a long code to a value with a low frequency of occurrence; etc. The image data can be effectively compressed using such image compression technology, and can be transmitted or stored.
[0013]
[0014] Meanwhile, with requests for high resolution images, the requests for stereo image content, which is a new image service, have also increased. A video compression technique is being analyzed to effectively provide stereographic image content with high resolution and ultra high resolution.
[0015]
[0016] Divulgation
[0017]
[0018] Technical problem
[0019]
[0020] An object of the present invention is to provide a method and an apparatus for effectively dividing a target coding / decoding block by encoding / decoding a video signal.
[0021]
[0022] An object of the present invention is to provide a method and an apparatus for dividing a target coding / decoding block into two blocks of a symmetric type or an asymmetric type by encoding / decoding a video signal.
[0023]
[0024] The technical objects to be achieved by the present invention are not limited to the aforementioned technical problems. And, other technical problems that are not mentioned will be understood clearly by experts in the field from the following description.
[0025]
[0026] Technical solution
[0027]
[0028] A method and apparatus for decoding a video signal according to the present invention can determine whether to divide a current block with quadruple tree partitioning, determine whether to divide the current block with binary tree partitioning when the current block is not divided with the quadruple tree partitioning, determine a type of binary tree partition for the current block when it is determined to divide the current block with binary tree partitioning, and divide the current block into two partitions according to the particular binary tree partition type .
[0029]
[0030] A method and apparatus for encoding a video signal according to the present invention can determine whether to split a current block with quadruple tree partitioning, determine whether to divide the current block with binary tree partitioning when the current block is not divided with the quadruple tree partitioning, determine a type of binary tree partition for the current block when it is determined to divide the current block with binary tree partitioning, and divide the current block into two partitions according to the particular binary tree partition type .
[0031] In the method and apparatus for encoding / decoding a video signal according to the present invention, the type of binary tree partition may comprise an asymmetric partition type in which two partitions generated by dividing the current block are asymmetric.
[0032]
[0033] In the method and apparatus for encoding / decoding a video signal according to the present invention, if the current block is divided into asymmetric partitions, quadruple tree partitioning or binary tree partitioning may not be allowed for each of them. the partitions generated as a result of a division of the current block.
[0034]
[0035] In the method and apparatus for encoding / decoding a video signal according to the present invention, the type of binary tree partition can be determined based on at least one of an information in a partitioning direction of the current block and an information with respect to sizes of the two current partitions.
[0036]
[0037] In the method and apparatus for encoding / decoding a video signal according to the present invention, determining the type of binary tree partition may comprise determining whether the current block is divided into a symmetric shape, and determining an asymmetrical partition type. of the current block when it is determined that the current block is not divided in the symmetric way.
[0038]
[0039] In the method and apparatus for encoding / decoding a video signal according to the present invention, the type of binary tree partition can be determined based on index information signaled by a bit stream.
[0040]
[0041] The features briefly summarized above for the present invention are only illustrative aspects of the detailed description of the following invention, but do not limit the scope of the invention.
[0042]
[0043] Advantageous effects
[0044]
[0045] According to the present invention, the coding / decoding efficiency can be improved by effectively dividing a target coding / decoding block.
[0046]
[0047] According to the present invention, the efficiency of coding / decoding by dividing a target coding / decoding block into a symmetric type or an asymmetric type.
[0048]
[0049] The effects obtainable by the present invention are not limited to the aforementioned effects, and other effects not mentioned can be understood clearly by those skilled in the art from the description below.
[0050]
[0051] Description of the drawings
[0052]
[0053] Figure 1 is a block diagram illustrating a device for encoding a video according to an embodiment of the present invention.
[0054]
[0055] Figure 2 is a block diagram illustrating a device for decoding a video according to an embodiment of the present invention.
[0056]
[0057] Figure 3 is a diagram illustrating an example of hierarchical partitioning of a coding block based on a tree structure according to an embodiment of the present invention.
[0058]
[0059] Figure 4 is a diagram illustrating a type of partition in which binary tree-based partitioning is allowed according to an embodiment of the present invention.
[0060]
[0061] Figure 5 is a diagram illustrating an example in which only a binary tree-based partition of a predetermined type according to an embodiment of the present invention is allowed.
[0062]
[0063] Figure 6 is a diagram for explaining an example in which information related to the permissible number of binary tree partitioning is encoded / decoded, according to an embodiment to which the present invention is applied.
[0064]
[0065] Figure 7 illustrates a partition type of a block of codification based on asymmetric binary tree partitioning.
[0066]
[0067] Figure 8 shows an example in which a coding block is divided into a plurality of coding blocks using QTBT and asymmetric binary tree partitioning.
[0068] Figure 9 is a diagram illustrating types of partition that can be applied to a coding block.
[0069]
[0070] Figure 10 is a diagram illustrating a partition mode that can be applied to a coding block when the coding block is coded by inter prediction.
[0071]
[0072] Figure 11 is a flow diagram illustrating partitioning processes of a coding block according to an embodiment of the present invention.
[0073]
[0074] Figure 12 is a flow chart illustrating processes for obtaining a residual sample according to an embodiment to which the present invention is applied.
[0075]
[0076] Mode for invention
[0077]
[0078] A variety of modifications to the present invention can be made and various embodiments of the present invention exist, examples of which will now be provided with reference to the drawings and will be described in detail. However, the present invention is not limited to the same, and exemplary embodiments may be construed as including all modifications, equivalents, or substitutes in a technical concept and a technical scope of the present invention. Similar reference numbers refer to the similar element described in the drawings.
[0079]
[0080] The terms used in the descriptive memory, 'first', 'second', etc., can be used to describe various components, but the components are not to be construed as being limited to the terms. The terms are used only to differentiate a component from other components. For example, the 'first' component may be named the 'second' component without departing from the scope of the present invention, and the 'second' component may similarly be named the 'first' component. The term 'and / or' includes a combination of a plurality of elements or any one of a plurality of terms.
[0081]
[0082] It will be understood that when an element is simply referred to as being 'connected to' or 'coupled' to another element without being 'directly connected to' or 'directly coupled to' another element in the present description, it can be 'directly connected' a 'o' directly coupled to another element or being connected to or coupled to another element, which has the other intermediate element between them. In contrast, it should be understood that when an element is named as being "directly coupled" or "directly connected" to another element, there are no intermediate elements present.
[0083]
[0084] The terms used in the present specification are simply used to describe particular embodiments, and are not intended to limit the present invention. An expression used in the singular encompasses the expression of the plural, unless it has a clearly different meaning in the context. In the present specification, it is to be understood that the terms such as "including", "having", etc., are intended to indicate the existence of the characteristics, numbers, stages, actions, elements, parts, or combinations of the same disclosed in the descriptive memory, and is not intended to exclude the possibility that one or more other characteristics, numbers, steps, actions, elements, parts, or combinations of them may exist or be added.
[0085]
[0086] In the following, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following, the same constituent elements in the drawings are indicated by the same reference numbers, and a repeated description of the same elements will be omitted.
[0087]
[0088] Figure 1 is a block diagram illustrating a device for encoding a video according to an embodiment of the present invention.
[0089]
[0090] Referring to Figure 1, the device 100 for encoding a video may include: an instantaneous partitioning module 110, prediction modules 120 and 125, a transform module 130, a quantization module 135, a reorganization module 160, a coding module by entropla 165, an inverse quantization module 140, a reverse transform module 145, a filter module 150, and a memory 155.
[0091]
[0092] The constitutional parts shown in Figure 1 are shown independently to represent different feature functions in the device for encoding a video. Therefore, it does not mean that each constitutional part is constituted in a separate hardware or software constitutional unit. In other words, each constitutional part includes each of the constitutional parts listed for convenience. Therefore, at least two constitutional parts of each constitutional part can be combined to form a constitutional part or a constitutional part can be divided into a plurality of constitutional parts to perform each function The realization where each constitutional part is combined with the realization where a constitutional part is divided are also included in the scope of the present invention, if it does not depart from the essence of the present invention.
[0093]
[0094] Also, some of the constituents may not be indispensable constituents that perform essential functions of the present invention but rather be selective constituents that only improve the performance thereof. The present invention can be implemented by including only the essential constitutional parts to implement the essence of the present invention except the constituents used in improving performance. The structure that includes only the indispensable constituents except the selective constituents used to improve performance only is also included in the scope of the present invention.
[0095]
[0096] The instantaneous partitioning module 110 can partition an entry snap into one or more processing units. At this point, the processing unit can be a prediction unit (PU), a transform unit (TU), or a coding unit (CU). The instantaneous partitioning module 110 can partition an instantaneous into combinations of multiple coding units, prediction units, and transform units, and can encode an instantaneous by selecting a combination of coding units, prediction units, and transform units with a predetermined criterion (for example, cost function).
[0097]
[0098] For example, an instantaneous can be partitioned into multiple units of codification. A recursive tree structure, such as a quadruple tree structure, can be used to partition an instantaneous into coding units. A coding unit that is partitioned into other coding units with an instantaneous or a larger coding unit such as a root can be partitioned with child nodes corresponding to the number of partitioned coding units. A coding unit that is no longer partitioned into a predetermined limitation serves as a leaf node. That is, when it is assumed that only square partitioning is possible for a coding unit, a coding unit can be partitioned into four other coding units as a maximum.
[0099]
[0100] Hereinafter, in the realization of the present invention, the coding unit can mean a unit that performs coding or a unit that performs decoding.
[0101] A prediction unit can be one of the partitioned partitions in a square or a rectangular shape that has the same size in a single coding unit, or a prediction unit can be one of the partitioned partitions to have a different shape / size in a single unit of codification.
[0102]
[0103] When a prediction unit subjected to intra prediction is generated based on a coding unit and the coding unit is not the smallest coding unit, intra prediction can be performed without partitioning the codification unit into multiple NxN prediction units.
[0104]
[0105] The prediction modules 120 and 125 may include an inter prediction module 120 that performs inter prediction and an intra prediction module 125 that performs intra prediction. It can be determined whether to perform inter prediction or intra prediction for the prediction unit, and detailed information (eg, an intra prediction mode, a motion vector, a reference instantaneous, etc.) can be determined according to each prediction method. . At this point, the processing unit subjected to prediction may be different from the processing unit for which the prediction method and detailed content is determined. For example, the prediction method, the prediction mode, etc., can be determined by the prediction unit, and prediction can be made by the transform unit. A residual value (residual block) between the generated prediction block and an original block can be input to the transform module 130. Also, the prediction mode information, the motion vector information, etc., used for prediction can be encoded with the residual value by the coding module 165 by entropla and can be transmitted to a device to decode a video. When using a particular coding mode, it is possible to transmit a video decoding device by encoding the original block as it is without generating the prediction block through the prediction modules 120 and 125.
[0106]
[0107] The inter prediction module 120 can predict the prediction unit based on information from at least one of a previous instantaneous or a subsequent instantaneous of the current instantaneous, or it can predict the prediction unit based on information from some encoded regions in the current instantaneous , in some cases. The inter-prediction module 120 may include a reference instantaneous interpolation module, a motion prediction module, and a motion compensation module.
[0108] The reference instantaneous interpolation module may receive reference snapshot information from the memory 155 and may generate pixel information of one pixel whole or less than the entire pixel from the reference snap. In the case of luminance pixels, an interpolation filter based on 8-lead DCT can be used, which has different filter coefficients to generate pixel information of one whole pixel or less than one whole pixel in units of 1/4 pixel . In the case of chrominance signals, an interpolation filter based on 4-lead DCT having a different coefficient may be used to generate pixel information of a whole pixel or less than an integer pixel in units of 1/8 of a pixel.
[0109]
[0110] The motion prediction module can perform motion prediction based on the reference snapshot interpolated by the reference instantaneous interpolation module. As methods to calculate a motion vector, various methods can be used, such as a full-search-based block adaptation algorithm (FBMA), a three-stage search (TSS), a three-stage search algorithm (NTS), etc. The motion vector can have a vector value of movement in units of 1/2 of a pixel or of 1/4 of a pixel based on an interpolation pixel. The motion prediction module can predict a current prediction unit by changing the motion prediction method. As methods of motion prediction, various methods can be used, such as a jump method, a joining method, an AMVP (Advanced Movement Vector Prediction) method, an intra block copy method, etc.
[0111]
[0112] The intra prediction module 125 may generate a prediction unit based on information from the reference pixel that is neighbor to a current block that is pixel information in the current instantaneous. When the neighbor block of the current prediction unit is a block subjected to inter prediction and therefore a reference pixel is a pixel subjected to inter prediction, the reference pixel included in the block subjected to inter prediction may be replaced by information from reference pixel of a neighboring block subjected to intra prediction. That is, when a reference pixel is not available, at least one reference pixel of available reference pixels can be used in place of information from the unavailable reference pixel.
[0113]
[0114] Prediction modes in intra prediction can include a directional prediction mode that uses reference pixel information depending on a direction of prediction and a non-directional prediction mode that does not use directional information when predicting. A way to predict luminance information can be different from a mode for predicting chrominance information, and for predicting chrominance information, intra prediction information may be used to predict luminance information or predicted luminance signal information.
[0115]
[0116] When performing intra prediction, when the size of the prediction unit is the same as the size of the transform unit, intra prediction can be performed in the prediction unit based on plbles on the left, top left and top of the prediction unit. However, when performing intra prediction, when the size of the prediction unit is different from the size of the transform unit, intra prediction can be performed using a reference pixel based on the transform unit. Also, intra prediction can be used using NxN partitioning for only the smallest coding unit.
[0117]
[0118] In the intra prediction method, a prediction block can be generated after applying an AIS filter (Intra Adaptive Smoothing) to a reference pixel depending on the prediction modes. The type of the AIS filter applied to the reference pixel may vary. To perform the intra prediction method, an intra prediction mode of the current prediction unit can be predicted from the intra prediction mode of the neighboring prediction unit to the current prediction unit. In predicting the prediction mode of the current prediction unit using predicted mode information from the neighboring prediction unit, when the intra prediction mode of the current prediction unit is the same as the intra prediction mode of the prediction unit. neighbor prediction, information can be transmitted indicating that the prediction modes of the current prediction unit and the neighboring prediction unit are equal to each other using predetermined flag information. When the prediction mode of the current prediction unit is different from the prediction mode of the neighboring prediction unit, encoding by entropla can be performed to encode information of prediction mode of the current block.
[0119]
[0120] Also, a residual block can be generated which includes information on a residual value that is a different one between the prediction unit subjected to prediction and the original block of the prediction unit based on prediction units generated by the prediction modules 120 and 125. The residual block generated can be introduced into the transform module 130.
[0121]
[0122] The transform module 130 can transform the residual block that includes the information into the residual value between the original block and the prediction unit generated by the prediction modules 120 and 125 using a transform method, such as discrete cosine transform (DCT), discrete sinus transform (DST) and KLT. Whether to apply DCT, DST, or KLT to transform the residual block can be determined based on intra prediction mode information of the prediction unit used to generate the residual block.
[0123]
[0124] The quantization module 135 can quantify values transformed to a frequency domain by the transform module 130. The quantization coefficients may vary depending on the block or importance of an instantaneous one. The values calculated by the quantization module 135 can be provided to the inverse quantization module 140 and the reorganization module 160.
[0125]
[0126] The reorganization module 160 can rearrange coefficients of quantized residual values.
[0127]
[0128] The reorganization module 160 can change a coefficient in the form of a two-dimensional block into a coefficient in the form of a one-dimensional vector through a method of coefficient scanning. For example, the reorganization module 160 can scan from a DC coefficient to a coefficient in the high frequency domain a zigzag exploration method to change the coefficients to be in the form of one-dimensional vectors. Depending on the size of the transform unit and the intra prediction mode, vertical direction exploration can be used where the coefficients are explored in the form of two-dimensional blocks in the direction of column or exploration of horizontal direction where the coefficients in block form are explored two-dimensional in the direction of row instead of zigzag exploration. That is, which scanning method is used between zigzag scanning, vertical direction exploration and horizontal direction exploration can be determined depending on the size of the transform unit and the intra prediction mode.
[0129]
[0130] The coding module 165 by entropla can perform entropla coding based on the values calculated by the reorganization module 160. Entropla coding can use various coding methods, for example, Golomb exponential coding, adaptive variable length coding according to context (CAVLC), and adaptive arithmetic binary coding according to context (CABAC).
[0131]
[0132] The coding module by entropla 165 can encode a variety of information, such as residual value coefficient information and block type information of the coding unit, prediction mode information, partition unit information, prediction unit information, transform unit information, motion vector information, reference frame information, block interpolation information, filtration information, etc., from the reorganization module 160 and the prediction modules 120 and 125.
[0133]
[0134] The coding module by entropla 165 can encode by entropla the coefficients of the coding unit introduced from the reorganization module 160.
[0135]
[0136] The inverse quantization module 140 can quantify inversely the values quantized by the quantization module 135 and the inverse transform module 145 can transform the transformed values inversely by the transform module 130. The residual value generated by the modulo Inverse quantization 140 and the inverse transform module 145 can be combined with the prediction unit provided by a motion estimation module, a motion compensation module, and the intra prediction module of the prediction modules 120 and 125 so that a reconstructed block can be generated.
[0137]
[0138] The filter module 150 may include at least one of an unlock filter, a displacement correction unit, and an adaptive loop filter (ALF).
[0139]
[0140] The unblocking filter can eliminate block distortion that occurs due to the boundaries between the blocks in the reconstructed snapshot. To determine whether to perform unblocking, the pixels included in various rows or columns in the block can be a basis for determining whether to apply the unlock filter to the current block. When the unblocking filter is applied to the block, an intense filter or a weak filter can be applied depending on the filtration intensity of the required unblocking. Also, when applying the unblocking filter, filtration of horizontal direction and vertical direction filtration can be processed in parallel.
[0141]
[0142] The displacement correction module can correct the displacement with the original instantaneous in units of a pixel in the instantaneous one unlocked. To perform the displacement correction in a particular instantaneous, it is possible to use a displacement application method in consideration of edge information of each pixel or a one-instantaneous pixel partitioning method in the predetermined number of regions, to determine a region to submit to perform the displacement, and apply the displacement to the determined region.
[0143]
[0144] Adaptive loop filtering (ALF) can be performed based on the value obtained by comparing the filtered reconstructed snapshot and the original instantaneous snapshot. The pixels included in the snapshot can be divided into predetermined groups, a filter can be determined to be applied to each of the groups, and filtering can be performed individually for each group. Information on whether to apply ALF and a luminance signal can be transmitted by coding units (CU). The filter shape and coefficient of a filter for ALF can vary depending on each block. Also, the filter for ALF in the same form (fixed form) can be applied independently of the characteristics of the target application block.
[0145]
[0146] The memory 155 may store the reconstructed block or instantaneous calculated through the filter module 150. The stored reconstructed block or instantaneous may be provided to the prediction modules 120 and 125 when performing inter prediction.
[0147]
[0148] Figure 2 is a block diagram illustrating a device for decoding a video according to a realization of the present invention.
[0149]
[0150] Referring to Figure 2, the device 200 for decoding a video may include: an entrope decoding module 210, a reorganization module 215, a reverse quantization module 220, a reverse transform module 225, prediction modules 230 and 235, a filter module 240, and a memory 245.
[0151]
[0152] When a bit stream of video is input from the device to encode a video, the introduced bit stream can be decoded according to a reverse process of the device for encoding a video.
[0153]
[0154] The entrope decoding module 210 can perform decoding by entropla according to an inverse encoding process by the entrope coding module of the device to encode a video. For example, corresponding to the methods performed by the device to encode a video, various methods can be applied, such as exponential Golomb coding, adaptive variable length coding according to context (CAVLC), and adaptive arithmetic binary coding according to context (CABAC).
[0155]
[0156] The entrope decoding module 210 can decode information about intra prediction and inter prediction made by the device to encode a video.
[0157]
[0158] The reorganization module 215 can perform reorganization in the bitstream decoded by entropla by the decode module by entropla 210 based on the reorganization method used in the device to encode a video. The reorganization module can reconstruct and reorganize the coefficients in the form of one-dimensional vectors to the coefficient in the form of two-dimensional blocks. The reorganization module 215 may receive information related to coefficient scanning performed on the device to encode a video and may perform reorganization by an exploration method in reverse of the coefficients based on the scan order performed on the device to encode a video .
[0159]
[0160] The inverse quantization module 220 can perform inverse quantization based on a quantization parameter received from the device to encode a video and the reorganized coefficients of the block.
[0161]
[0162] The inverse transform module 225 can perform the inverse transform, i.e., inverse DCT, inverse DST, and inverse KLT, which is the inverse process of the transform, ie, DCT, DST, and KLT, performed by the transform module in the result of quantification by the device to encode a video. The inverse transform can be done based on a transfer unit determined by the device to encode a video. The inverse transform module 225 of the device for decoding a video can selectively perform transform schemes (e.g., DCT, DST, and KLT) depending on multiple pieces of information, such as the prediction method, the size of the current block , the direction of prediction, etc.
[0163]
[0164] The prediction modules 230 and 235 can generate a prediction block based on information on the prediction block generation received from the entrope decoding module 210 and the previously decoded block or instantaneous information received from the memory 245.
[0165]
[0166] As described above, as the operation of the device to encode a video, when performing intra prediction, when the size of the prediction unit is the same as the size of the transform unit, intra prediction can be performed in the prediction unit. based on the pixels located on the left, the top left, and the top of the prediction unit. When performing intra prediction, when the size of the prediction unit is different from the size of the unit of transformed, intra prediction can be performed using a reference pixel based on the transform unit. Also, intra prediction can be used using NxN partitioning for only the smallest coding unit.
[0167]
[0168] The prediction modules 230 and 235 may include a prediction unit determination module, an inter prediction module, and an intra prediction module. The prediction unit determination module may receive a variety of information, such as prediction unit information, prediction mode information of an intra prediction method, information on prediction of movement of an inter prediction method, etc., from the decode module by entropla 210, it can divide a current coding unit into prediction units, and can determine whether inter prediction or intra prediction is performed in the prediction unit. Using information required in inter prediction of the current prediction unit received from the device to encode a video, the inter prediction module 230 can perform inter prediction in the current prediction unit based on information from at least one of a previous instantaneous or a instant instantaneous of the current instantaneous that includes the current prediction unit. As an alternative, inter prediction can be performed based on information from some previously reconstructed regions in the current instantaneous that includes the current prediction unit.
[0169]
[0170] To perform inter prediction, it can be determined for the coding unit which of a hop mode, a join mode, an AMVP mode, and an inter block copy mode is used as the motion prediction method of the unit of prediction included in the coding unit.
[0171]
[0172] The intra prediction module 235 can generate a prediction block based on pixel information in the current instantaneous. When the prediction unit is a prediction unit subjected to intra prediction, intra prediction can be performed based on information of the intra prediction mode of the prediction unit received from the device to encode a video. The intra prediction module 235 may include an intra-adaptive smoothing filter (AIS), a reference pixel interpolation module, and a DC filter. The AIS filter performs filtration on the reference pixel of the current block, and whether applying the filter can be determined depending on the prediction mode of the current prediction unit. AIS filtering can be performed on the reference pixel of the current block using the prediction mode of the prediction unit and the AIS filter information received from the device to encode a video. When the prediction mode of the current block is a mode where it is not performed AIS filtering, the AIS filter can not be applied.
[0173]
[0174] When the prediction mode of the prediction unit is a prediction mode in which intra prediction is performed based on the pixel value obtained by interpolating the reference pixel, the reference pixel interpolation module can interpolate the reference pixel for generate the reference pixel of a whole pixel or smaller than a whole pixel. When the prediction mode of the current prediction unit is a prediction mode in which a prediction block is generated without interpolation of the reference pixel, the reference pixel can not be interpolated. The DC filter can generate a prediction block through filtering when the prediction mode of the current block is a CC mode.
[0175]
[0176] The reconstructed block or instantaneous can be provided to the filter module 240. The filter module 240 may include the deblocking filter, the displacement correction module, and the ALF.
[0177]
[0178] The information on whether or not to apply the unlock filter to the corresponding block or instantaneous and the information about which of an intense filter and a weak filter is applied when the unlock filter is applied can be received from the device to encode a video. The unlock filter of the device for decoding a video can receive information about the unlock filter from the device to encode a video, and can perform unlock filtering in the corresponding block.
[0179]
[0180] The offset correction module may perform offset correction on the reconstructed snapshot based on the type of offset correction and offset value information applied to an instant when performing encoding.
[0181]
[0182] The ALF can be applied to the coding unit based on information on whether to apply the ALF, ALF coefficient information, etc., received from the device to encode a video. The ALF information can be provided as being included in a particular set of parameters.
[0183]
[0184] The memory 245 can store the reconstructed instantaneous or block for use as an instantaneous or reference block, and can provide the reconstructed instantaneous to an output module.
[0185] As described above, in the realization of the present invention, for convenience of explanation, the coding unit is used as a term to represent a unit for coding, but the coding unit can serve as a unit for performing decoding as well as coding.
[0186]
[0187] In addition, a current block may represent a target block to be encoded / decoded. And, the current block may represent a block of coding tree (or an encoding tree unit), a coding block (or a coding unit), a transform block (or a transform unit), a block of prediction (or a prediction unit), or the like depending on a coding / decoding stage.
[0188]
[0189] An instantaneous can be encoded / decoded by dividing into base blocks that have a square shape or a non-square shape. At this time, the base block can be referred to as a coding tree unit. The coding tree unit can be defined as a coding unit of the largest size allowed in a sequence or a cut. The information regarding whether the encoder tree unit has a square shape or has a non-square shape or the information regarding a size of the encoder tree unit can be signaled through a set of sequence parameters, a set of instantaneous parameters, or a cut heading. The coding tree unit can be divided into smaller size partitions. At this time, if it is assumed that a depth of a partition generated by dividing the coding tree unit is 1, a depth of a partition generated by dividing the partition that has depth 1 can be defined as 2. That is, a partition generated by dividing a partition that has a depth k in the coding tree unit can be defined as having a depth k + 1.
[0190]
[0191] A partition of arbitrary size generated by dividing a unit of coding tree can be defined as a unit of coding. The coding unit can be recursively divided or divided into base units to perform prediction, quantization, transform, or loop filtration, and the like. For example, a partition of arbitrary size generated by dividing the coding unit can be defined as a coding unit, or it can be defined as a transform unit or a prediction unit, which is a base unit for prediction, quantization, transformation or loop filtering and the like.
[0192] The partitioning of a coding tree unit or a coding unit may be performed based on at least one of a vertical line and a horizontal line. In addition, the number of vertical lines or horizontal lines dividing the coding tree unit or the coding unit may be at least one or more. For example, the code tree unit or the coding unit can be divided into two partitions using a vertical line or a horizontal line, or the code tree unit or the coding unit can be divided into three partitions using two vertical or vertical lines. two horizontal lines. Alternatively, the coding tree unit or the coding unit can be partitioned into four partitions having a length and a width of 1/2 using a vertical line and a horizontal line.
[0193]
[0194] When dividing a coding tree unit or a coding unit into a plurality of partitions using at least one vertical line or at least one horizontal line, the partitions may have a uniform size or a different size. As an alternative, any partition may have a different size of the remaining partitions.
[0195]
[0196] In the embodiments described below, it is assumed that a coding tree unit or a coding unit is divided into a quadruple tree structure or a binary tree structure. However, it is also possible to divide a coding tree unit or a coding unit using a greater number of vertical lines or a greater number of horizontal lines.
[0197]
[0198] Figure 3 is a diagram illustrating an example of hierarchical partitioning of a coding block based on a tree structure according to an embodiment of the present invention.
[0199]
[0200] An input video signal is decoded in predetermined block units. A default unit of this type to decode the input video signal is an encoding block. The coding block can be a unit to perform intra / inter prediction, transform and quantification. Furthermore, a prediction mode (e.g., intra prediction mode or inter prediction mode) is determined in units of a coding block, and the prediction blocks included in the coding block can share the determined prediction mode. The coding block can be a square or non-square block having an arbitrary size in a range of 8x8 to 64x64, or it can be a square or non-square block having a size of 128x128, 256x256 or greater.
[0201] Specifically, the coding block can be partitioned hierarchically based on at least one of a quadruple tree and a binary tree. At this point, quadruple tree-based partitioning can mean that a 2Nx2N coding block is partitioned into four NxN coding blocks, and binary tree-based partitioning can mean that one block of coding is partitioned into two blocks of coding. Even if partitioning based on a binary tree is performed, there may be a square-shaped coding block at the bottom depth.
[0202]
[0203] Partitioning based on a binary tree can be done symmetrically or asymmetrically. In addition, the partitioned coding block based on the binary tree can be a square block or a non-square block, such as a rectangular shape. For example, a partition type in which binary tree-based partitioning is allowed may comprise at least one of a symmetric type of 2NxN (non-square encoding unit of horizontal direction) or Nx2N (vertical square non-square encoding unit) ), asymmetric type of nLx2N, nRx2N, 2NxnU, or 2NxnD.
[0204]
[0205] Partitioning based on binary tree may be allowed in a limited way to one of a partition of symmetric type or asymmetric type. In this case, building the coding tree unit with square blocks may correspond to quadruple tree CU partitioning, and constructing the coding tree unit with symmetrical non-square blocks may correspond to binary tree partitioning. Constructing the coding tree unit with square blocks and symmetric non-square blocks can correspond to quad and binary tree CU partitioning.
[0206]
[0207] Partitioning based on a binary tree can be done in a coding block where quadruple tree-based partitioning is no longer performed. Tree-based quadruple partitioning can no longer be performed on the partitioned coding block based on the binary tree.
[0208]
[0209] Additionally, partitioning of a lower depth can be determined depending on a partition type of a greater depth. For example, if binary tree-based partitioning is allowed in two or more depths, only the same type as the binary tree partitioning of the upper depth in the lower depth can be allowed. For example, if binary tree-based partitioning is performed at the top depth with type 2NxN, partitioning based on binary tree at the bottom depth is also performed with type 2NxN. Alternatively, if binary tree-based partitioning at the top depth is performed with type Nx2N, binary tree-based partitioning at the bottom depth is also performed with type Nx2N.
[0210]
[0211] On the contrary, it is also possible to allow, at a lower depth, only a different type of a binary tree partitioning of a higher depth.
[0212]
[0213] It may be possible to limit only to using a specific type of binary tree-based partitioning for sequence, cutting, coding tree unit, or coding unit. As an example, only type 2NxN or type Nx2N of binary tree-based partitioning for the encoding tree unit can be allowed. A type of partition available in an encoder or decoder can be predefined. Or information about the type of partition available or about the type of partition not available can be encoded and then signaled through a bit stream.
[0214]
[0215] Figure 5 is a diagram illustrating an example where only a specific type of binary tree-based partitioning is allowed. Figure 5A shows an example in which only the binary tree-based partitioning type Nx2N is allowed, and Figure 5B shows an example in which only binary tree-based partitioning type 2NxN is allowed. To implement adaptive partitioning based on the quadruple tree or binary tree, information indicating quadruple tree-based partitioning can be used, information about the size / depth of the coding block that quadruple tree-based partitioning is allowed, information that indicates tree-based partitioning. binary, information about the size / depth of the coding block that partitioning is allowed based on binary tree, information about the size / depth of the coding block that partitioning based on binary tree is not allowed, information about whether tree-based partitioning is done binary in a vertical direction, a horizontal direction, or similar. For example, quad_split_flag indicates whether the coding block is divided into four coding blocks, and binary_split_flag indicates whether the coding block is divided into two coding blocks. When the coding block is divided into two coding blocks, is_hor_split_flag can be signaled indicating whether a partitioning address of the coding block is a vertical direction or a horizontal direction.
[0216]
[0217] In addition, information can be obtained on the number of times a binary tree partitioning, a depth to which binary tree partitioning is allowed, or the number of depths to which binary tree partitioning is allowed for a coding tree unit or a specific coding unit. The information may be encoded in units of a coding tree unit or a coding unit, and may be transmitted to a decoder through a bit stream.
[0218]
[0219] For example, a syntax 'max_binary_depth_idx_minus1' indicating a maximum depth to which binary tree partitioning is allowed can be encoded / decoded through a bit stream. In this case, max_binary_depth_idx_minus1 1 can indicate the maximum depth at which binary tree partitioning is allowed.
[0220]
[0221] Referring to the example shown in Figure 6, in Figure 6, the binary tree partitioning has been done for a coding unit having a depth of 2 and a coding unit having a depth of 3. Therefore, at minus one of information indicating the number of times the binary tree partitioning has been performed in the coding tree unit (ie, 2 times), information indicating the maximum depth that binary tree partitioning has been allowed in the coding tree unit (that is, depth 3), or the number of depths in which the binary tree partitioning has been performed in the coding tree unit (ie, 2 (depth 2 and depth 3)) it can be encoded / decoded through a bit stream.
[0222]
[0223] As another example, at least one of information on the number of times that binary tree partitioning is allowed, the depth at which binary tree partitioning is allowed, or the number of depths to which partitioning of the binary tree is allowed. Binary tree can be obtained for each sequence or each cut. For example, the information may be coded in units of a sequence, an instantaneous, or a cutting unit and transmitted through a bit stream. Therefore, at least one of the number of binary tree partitions in a first cut, the maximum depth in which binary tree partitioning is allowed in the first cut, or the number of depths in which tree partitioning is performed binary in the first cut may differ from a second cut. For example, in the first cut, binary tree partitioning can be allowed for only one depth, while in the second cut, partitioning can be allowed. binary tree for two depths.
[0224]
[0225] As another example, the number of times that binary tree partitioning is allowed, the depth at which binary tree partitioning is allowed, or the number of depths to which binary tree partitioning is allowed can be set differently according to a temporary level identifier (TemporalID) of a cut or an instantaneous. At this point, the temporary level identifier (TemporalID) is used to identify each of a plurality of video layers having a scalability of at least one of view, spatial, temporal or quality.
[0226]
[0227] As shown in Figure 3, the first coding block 300 with the partition depth of k can be partitioned into multiple second blocks of coding based on the quadruple tree. For example, the second coding blocks 310 to 340 can be square blocks having half the width and half the height of the first coding block, and the partition depth of the second coding block can be increased to k + 1.
[0228]
[0229] The second coding block 310 with the partition depth of k + 1 can be partitioned into multiple third coding blocks with the partition depth of k + 2. The partitioning of the second coding block 310 can be performed using selectively one of the quadruple tree and the binary tree depending on a partitioning method. At this point, the partitioning method can be determined based on at least one of the information indicating quadruple tree-based partitioning and the information indicating binary tree-based partitioning.
[0230]
[0231] When the second coding block 310 is partitioned based on the quadruple tree, the second coding block 310 can be partitioned into four third coding blocks 310a having half the width and half the height of the second coding block, and the depth The partition of the third coding block 310a can be increased to k + 2. In contrast, when the second coding block 310 is partitioned based on the binary tree, the second coding block 310 can be partitioned into two third coding blocks. At this point, each of the two third coding blocks can be a non-square block having one half the width and half the height of the second coding block, and the partition depth can be increased to k + 2. The second The coding block can be determined as a non-square block of a horizontal direction or a vertical direction depending on a partitioning direction, and the partitioning address can be determined based on the information on whether binary tree-based partitioning is performed in a vertical direction or a horizontal direction
[0232]
[0233] Meanwhile, the second coding block 310 can be determined as a leaf coding block that is no longer partitioned based on the quadruple tree or the binary tree. In this case, the sheet coding block can be used as a prediction block or a transform block.
[0234]
[0235] Like the partitioning of the second coding block 310, the third coding block 310a can be determined as a sheet coding block, or it can be further partitioned based on the quadruple tree or the binary tree.
[0236]
[0237] Meanwhile, the third block of coding 310b partitioned based on the binary tree can be further partitioned into coding blocks 310b-2 of a vertical direction or coding blocks 310b-3 of a horizontal direction based on the binary tree, and the depth of The partition of the relevant coding blocks can be increased to k + 3. Alternatively, the third coding block 310b can be determined as a leaf coding block 310b-1 that is no longer partitioned based on the binary tree. In this case, the coding block 310b-1 can be used as a prediction block or a transform block. However, the above partitioning process can be performed in a limited manner based on at least one of the information on the size / depth of the coding block that four-tree-based partitioning is allowed, the information on the size / depth of the coding block that partitioning based on binary tree is allowed, and information about the size / depth of the coding block that partitioning based on binary tree is not allowed.
[0238]
[0239] A number of a candidate representing a size of a code block can be limited to a predetermined number, or a size of a code block in a predetermined unit can have a fixed value. As an example, the size of the block of coding in a sequence or in an instantaneous can be limited so that it has 256x256, 128x128, or 32x32. The information that indicates the size of the block of coding in the sequence or in the instantaneous can be signaled through a sequence heading or an instantaneous heading.
[0240] As a result of partitioning based on a quadruple tree and a binary tree, a coding unit can be represented as a square or rectangular shape of an arbitrary size.
[0241]
[0242] As a result of a division based on the quadruple tree and the binary tree, a coding block that is not partitioned additionally can be used as a prediction block or a transform block. That is, in a QTBT partitioning method based on a quadruple tree and binary tree, a block of coding can be made a block of prediction and a block of prediction can be made a block of transformation. For example, when the QTBT partitioning method is used, a prediction image can be generated in a unit of a coding block, and a residual signal, which is a difference between an original image and the prediction image, is transformed into a unit of a coding block. At this point, generating the prediction image in a unit of a coding block can mean that the movement information for a coding block is determined or an intra prediction mode for a coding block is determined.
[0243]
[0244] In the QTBT partitioning method, it can be established that only symmetric partitioning in BT is allowed. However, if only symmetric binary partitioning is allowed, even if an object and a background are divided into a block limit, the coding efficiency can be reduced. Accordingly, in the present invention, a method of partitioning an encoding block in an asymmetric manner to increase the coding efficiency is proposed.
[0245]
[0246] The asymmetric binary tree partitioning represents dividing one coding block into two smaller coding blocks. As a result of asymmetric binary tree partitioning, the coding block can be divided into two blocks of coding in an asymmetric fashion. For convenience of explanation, in the following embodiments, dividing a block of coding into two partitions in a symmetric fashion will be referred to as a binary tree partition (or binary tree partitioning), and dividing one block of coding into two partitions in a way Asymmetric will be referred to as an asymmetric binary tree partition (or asymmetric binary tree partitioning).
[0247]
[0248] Figure 7 illustrates a partition type of an encoding block based on asymmetric binary tree partitioning. A coding block of 2Nx2N can be divided into two coding blocks whose width ratio is n: (1-n) or two Coding blocks whose height ratio is n: (1-n). Where n can represent a real number greater than 0 and less than 1.
[0249]
[0250] It is illustrated in Figure 7 that two coding blocks whose width ratio is 1: 3 or 3: 1 or whose height ratio is 1: 3 or 3: 1 are generated by applying asymmetric binary tree partitioning to a coding block. .
[0251]
[0252] Specifically, since a size coding block WxH is partitioned in a vertical direction, a left partition whose width is 1 / 4W and a right partition whose width is 3 / 4W can be generated. As described above, a partition type in which the width of the left partition is less than the width of the right partition can be referred to as a binary partition nLx2N.
[0253]
[0254] Since a size coding block WxH is partitioned in a vertical direction, a left partition whose width is 3 / 4W and a right partition whose width is 1 / 4W can be generated. As described above, a partition type in which the width of the right partition is smaller than the width of the left partition can be referred to as a binary partition of nRx2N.
[0255]
[0256] Since a size coding block WxH is partitioned in a horizontal direction, an upper partition whose width is 1 / 4H and a lower partition whose width is 3 / 4H can be generated. As described above, a partition type in which the height of the upper partition is smaller than the height of the lower partition can be referred to as a binary partition of 2NxnU.
[0257]
[0258] Since a size coding block WxH is partitioned in a horizontal direction, an upper partition whose width is 3 / 4H and a lower partition whose width is 1 / 4H can be generated. As described above, a partition type in which the height of the lower partition is less than the height of the upper partition can be referred to as a binary partition of 2NxnD.
[0259]
[0260] In Figure 7, it is illustrated that a ratio of width or a height ratio between two coding blocks is 1: 3 or 3: 1. However, the width ratio or the height relationship between two coding blocks generated by asymmetric binary tree partitioning is not limited to the same. The coding block can be partitioned into two coding blocks having a different ratio of width or different height relationship from those shown in Figure 7.
[0261] When the asymmetric binary tree partitioning is used, an asymmetric binary partition type of a block of codification can be determined based on information signaled by a bit stream. For example, a partition type of a coding block can be determined based on information indicating a partitioning direction of the coding block and information indicating whether a first partition, generated by dividing the coding block, has a smaller size than a second one. partition
[0262]
[0263] The information indicating the partitioning address of the coding block may be a 1-bit flag indicating whether the coding block is partitioned in a vertical direction or in a horizontal direction. For example, hor_binary_flag can indicate if the coding block is partitioned in a horizontal direction. If a value of hor_binary_flag is 1, it can indicate that the coding block is partitioned in the horizontal direction and if the value of hor_binary_flag is 0, it can indicate that the coding block is partitioned in the vertical direction. As an alternative, ver_binary_flag can be used which indicates whether or not the coding block is partitioned in the vertical direction.
[0264]
[0265] The information that indicates if the first partition has a smaller size than the second partition can be a 1 bit flag. For example, is_left_above_small_part_flag can indicate whether a size of a left or higher partition generated by dividing the code block is smaller than a right or lower partition. If a value of is_left_above_small_part_flag is 1, it means that the size of the left or higher partition is smaller than the right or lower partition. If the value of is_left_above_small_part_flag is 0, it means that the size of the left or higher partition is greater than the right or lower partition. Alternatively, is_right_bottom_small_part_flag that indicates whether the size of the right or lower partition is smaller than the left or above partition can be used.
[0266]
[0267] Alternatively, sizes of a first partition and a second partition can be determined using information indicating a width relationship, a height ratio or an area ratio between the first partition and the second partition.
[0268]
[0269] When a value of hor_binary_flag is 0 and a value of is_left_above_small_part_flag is 1, it can represent a binary partition of nLx2N, and when a value of hor_binary_flag is 0 and a value of is_left_above_small_part_flag is 0, it can represent a binary partition nRx2N. Also, when a value of hor_binary_flag is 1 and a value of is_left_above_small_part_flag is 1, can represent binary partition 2NxnU, and when a value of hor_binary_flag is 1 and a value of is_left_above_small_part_flag is 0, it can represent binary partition 2NxnD.
[0270]
[0271] As another example, the type of asymmetric binary partitioning of the coding block can be determined by Index information indicating a partition type of the coding block. At this point, the index information is information to be signaled through a bit stream, and can be encoded with a fixed length (i.e., a fixed number of bits) or can be encoded with a variable length. For example, Table 1 below shows the partition index for each asymmetric binary partition.
[0272]
[0273] [Table 1]
[0274]
[0275]
[0276]
[0277]
[0278] Partitioning of asymmetric binary tree can be used depending on the partitioning method of QTBT. For example, if quadruple tree partitioning or binary tree partitioning is no longer applied to the coding block, it can be determined whether or not to apply asymmetric binary tree partitioning to the coding block. At this point, whether or not to apply asymmetric binary tree partitioning to the coding block can be determined by information signaled through the bitstream. For example, the information can be a 1 bit flag 'asymmetric_binary_tree_flag', and based on the flag, it can be determined if the asymmetric binary tree partitioning is applied to the coding block.
[0279]
[0280] Alternatively, when it is determined that the coding block is partitioned into two blocks, it can be determined whether the partition type is binary tree partitioning or asymmetric binary tree partitioning. At this point, if the partition type of the coding block is the binary tree partitioning or the asymmetric binary tree partitioning, it can be determined by information signaled through the bitstream. For example, the information can be a 1-bit flag 'is_asymmetric_split_flag', and based on the flag, it can be determined whether the coding block is partitioned in a symmetric or an asymmetrical way.
[0281] As another example, the indices assigned to binary partitions of symmetric type and binary partitions of asymmetric type may be different, and can be determined based on index information if the block of codification is partitioned into a symmetric type or an asymmetric type. For example, Table 2 shows an example in which different indices are assigned to symmetric binary partitions and asymmetric binary partitions.
[0282] [Table 2]
[0283]
[0284]
[0285]
[0286]
[0287] A coding tree block or coding block can be divided into a plurality of quadruple tree partitioning, binary tree partitioning or asymmetric binary tree partitioning blocks. For example, Figure 8 shows an example in which a coding block is divided into a plurality of coding blocks using QTBT and asymmetric binary tree partitioning. Referring to Figure 8, it can be seen that asymmetric binary tree partitioning is performed in depth 2 which partitions in the first drawing, depth 3 which partitions in the second drawing, and depth 3 which partitions in the third drawing, respectively.
[0288]
[0289] It can be restricted that a block of coding divided by asymmetric binary tree partitioning is no longer divided. For example, the information related to a quadruple tree, binary tree, or asymmetric binary tree may not be encoded / decoded for an encoding block that is generated by asymmetric binary tree partitioning. That is, for a block of coding generated through asymmetric binary tree partitioning, a flag indicating whether quadruple tree partitioning applies, a flag indicating whether to apply binary tree partitioning, a flag indicating whether to apply it, can be omitted. applies asymmetric binary tree partitioning, a flag indicating a direction of binary tree partitioning or asymmetric binary tree partitioning, or Index information indicating an asymmetric binary partition, or the like.
[0290]
[0291] As another example, it can be determined whether or not to allow binary tree partitioning depending on whether the QTBT is allowed or not. For example, in a snapshot or cut where the QTBT-based partitioning method is not used, it may not be restricted to use asymmetric binary tree partitioning.
[0292]
[0293] The information that indicates if asymmetric binary tree partitioning is allowed can be coded and signaled in a unit of a block, a cut or an instantaneous one. At this point, the information that indicates whether asymmetric binary tree partitioning is allowed can be a 1-bit flag. For example, if a value of is_used_asymmetric_QTBT_enabled_flag is 0, it may indicate that asymmetric binary tree partitioning is not used. It is also possible that is_used_asymmetric_QTBT_enabled_Flag is set to 0 without signaling it when binary tree partitioning is not used in an instantaneous or a cut.
[0294]
[0295] It is also possible to determine a type of partition allowed in a codification block based on a size, a shape, a partition depth, or a partition type of the codification block. For example, at least one of partition types, partition forms or a number of partitions allowed in a block of codification generated by quadruple tree partitioning and in a block of codification generated by binary tree partitioning may be different from one of the others.
[0296]
[0297] For example, if a block of codification is generated by quadruple tree partitioning, all quadruple tree partitioning, binary tree partitioning, and asymmetric binary tree partitioning may be allowed for the codification block. That is, if a block of codification is generated based on quadruple tree partitioning, all the partition types shown in Figure 9 can be applied to the codification block. For example, a 2Nx2N partition can represent a case where a block of codification is not further divided, NxN can represent a case where a block of codification is partitioned into a quadruple tree, and Nx2N and 2NxN can represent a case where a block of codification It is partitioned into a binary tree. In addition, nLx2N, nRx2N, 2NxnU, and 2NxnD can represent cases where a block of codification is partitioned into an asymmetric binary tree.
[0298] On the other hand, when a code block is generated by binary tree partitioning, the asymmetric binary tree partitioning for the code block may not be allowed to be used. That is, when the coding block is generated based on the binary tree partitioning, it can be restricted that the asymmetric partition type (nLx2N, nRx2N, 2NxnU, 2NxnD) is not applied between the partition types shown in Figure 9 to the block of codification.
[0299]
[0300] When QTBT is used, a coding block can be used that is not further divided as a prediction block. That is, the coding block can be encoded using at least one of a hop mode, an intra prediction method, an inter prediction, or a hop.
[0301]
[0302] As another example, if a coding block is determined, a prediction block having the same size as the coding block or smaller than the coding block can be determined through predictive partitioning of the coding block. The predictive partitioning of a coding block can be done by a partition mode (Part_mode) that indicates a partition type of the coding block. A size or shape of a prediction block can be determined according to the partition mode of the coding block. The type of partition of the coding block can be determined through information that specifies any one of partition candidates. At this time, the partition candidates available for the code block can include an asymmetric partition type (e.g., nLx2N, nRx2N, 2NxnU, 2NxnD) depending on a size, a shape or an encoding mode of the encoding block. For example, available partition candidates can be determined for a coding block according to a coding mode of a current block. For example, Figure 10 is a diagram illustrating a partition mode that can be applied to an encoding block when the coding block is coded by inter prediction.
[0303]
[0304] If a coding block is coded by an inter prediction, one of 8 partition modes illustrated in Figure 10 can be applied to the coding block.
[0305]
[0306] On the other hand, when an intra prediction coding block is encoded, a partition mode of PART_2Nx2N or PART_NxN can be applied to the coding block.
[0307]
[0308] PART_NxN can be applied when a coding block has a minimum size. At this point, the minimum size of the coding block can be predefined in the encoder and decoder. As an alternative, information can be signaled with respect to the minimum size of the coding block by the bit stream. For example, the minimum size of the coding block is signaled through a cutting header, so that the minimum size of the coding block can be defined by cutting.
[0309]
[0310] In another example, available partition candidates for a coding block can be determined differently depending on at least one of a size or shape of the coding block. For example, the number or type of partition candidates available for a coding block can be determined differently according to at least one of a size or shape of the coding block.
[0311]
[0312] Alternatively, a type or number of asymmetric partition candidates among available partition candidates for a coding block may be limited depending on a size or shape of the coding block. For example, the number or type of asymmetric partition candidates available for a coding block can be determined differently according to at least one of a size or shape of the coding block.
[0313]
[0314] In general, a prediction block can have a size of 64x64 to 4x4. However, when a code block is coded by inter prediction, it is possible to prevent the prediction block from having a 4x4 size to reduce the memory bandwidth when motion compensation is performed.
[0315]
[0316] Figure 11 is a flow diagram illustrating partitioning processes of an encoding block according to an embodiment of the present invention.
[0317]
[0318] First, it can be determined if quadruple tree partitioning is performed on a current block S1110. If it is determined that quadruple tree partitioning is to be performed on the current block, the current block can be divided into four coding blocks S1120.
[0319]
[0320] On the other hand, if it is determined that quadruple tree partitioning is not allowed for the current block, it can be determined if binary tree partitioning or asymmetric binary tree partitioning is performed in the current block S1130.
[0321]
[0322] If it is determined that binary tree partitioning or partitioning is performed Asymmetric binary tree for the current block, S1140 can be determined as a binary partition type of the current block. At this time, the type of binary tree partition of the current block can be determined based on at least one of information indicating partition information of the current block, information indicating a partitioned partition size, or index information specifying a type of partition. partition
[0323]
[0324] The current block can be divided into two symmetric or asymmetric blocks according to the type of binary partition determined S1150.
[0325]
[0326] It is possible to determine sequentially whether or not to perform binary tree partitioning for the current block and whether or not to perform binary tree partitioning for the current block. For example, it can be determined whether or not to perform asymmetric binary tree partitioning only when it is determined that binary tree partitioning is not allowed for the current block.
[0327]
[0328] Figure 12 is a flow chart illustrating processes for obtaining a residual sample according to an embodiment to which the present invention is applied.
[0329]
[0330] First, a residual coefficient of a current block can be obtained S1210. A decoder can obtain a residual coefficient through a method of coefficient exploration. For example, the decoder can perform a coefficient scan using a diagonal scan, a zigzag scan, a top-right scan, a vertical scan, or a horizontal scan, and can obtain residual coefficients in a two-dimensional block shape.
[0331]
[0332] Inverse quantization can be performed on the residual coefficient of the current block S1220.
[0333]
[0334] It is possible to determine whether to omit an inverse transform in the dequantized residual coefficient of the current block S1230. Specifically, the decoder can determine whether to omit the inverse transform into at least one of a horizontal direction or a vertical direction of the current block. When it is determined to apply the inverse transform in at least one of the horizontal direction or the vertical direction of the current block, a residual sample of the current block can be obtained by inverse transformation of the dequantized residual coefficient of the current block S1240. At this point, the inverse transform can be performed using at least one of DCT, DST, and KLT.
[0335] When the inverse transform is omitted in both the horizontal direction and the vertical direction of the current block, no inverse transformation is made in the horizontal direction and the vertical direction of the current block. In this case, the residual sample of the current block can be obtained by scaling the dequantized residual coefficient with a predetermined value S1250.
[0336]
[0337] Bypassing the inverse transform in the horizontal direction means that the inverse transform is not done in the horizontal direction but that the inverse transform is done in the vertical direction. At this time, scaling can be done in the horizontal direction.
[0338]
[0339] Bypassing the inverse transform in the vertical direction means that the inverse transform is not done in the vertical direction but the inverse transformation is done in the horizontal direction. At this time, scaling can be made in the vertical direction.
[0340]
[0341] It can be determined whether or not a reverse transform jump technique can be used for the current block depending on a partition type of the current block. For example, if the current block is generated through a binary tree-based partitioning, the inverse transform hopping scheme can be restricted for the current block. Therefore, when the current block is generated through binary tree-based partitioning, the residual sample of the current block can be obtained by inverse transformation of the current block. Furthermore, when the current block is generated through binary tree-based partitioning, the information encoding / decoding which indicates whether or not the reverse transform is skipped (eg, transform_skip_flag) can be omitted.
[0342]
[0343] Alternatively, when the current block is generated through binary tree-based partitioning, it is possible to limit the inverse transform jump scheme to at least one of the horizontal direction or the vertical direction. At this point, the direction in which the inverse transform hop pattern is limited can be determined based on decoded information of the bitstream, or can be determined adaptively based on at least one of a current block size, a form of the current block, or an intra prediction mode of the current block.
[0344]
[0345] For example, when the current block is a non-square block that has a width greater than a height, the inverse transform hopping scheme can be allowed only in the vertical direction and restricted in the horizontal direction. That is, when the current block is 2NxN, the inverse transform is done in the horizontal direction of the current block, and the inverse transform can be done selectively in the vertical direction.
[0346]
[0347] On the other hand, when the current block is a non-square block that has a height greater than a width, the inverse transform jump scheme can be allowed only in the horizontal direction and restricted in the vertical direction. That is, when the current block is Nx2N, the inverse transformation is performed in the vertical direction of the current block, and the inverse transform in the horizontal direction can be performed selectively.
[0348]
[0349] In contrast to the previous example, when the current block is a non-square block that has a width greater than a height, the inverse transform jump scheme can be allowed only in the horizontal direction, and when the current block is a non-square block that has a height greater than a width, the inverse transform jump scheme can be allowed only in the vertical direction.
[0350]
[0351] The information that indicates whether or not to omit the inverse transform with respect to the horizontal direction or the information that indicates whether to omit the inverse transformation with respect to the vertical direction can be signaled through a bit stream. For example, the information that indicates whether or not to omit the inverse transform in the horizontal direction is a 1-bit flag, 'hor_transform_skip_flag', and the information that indicates whether to omit the inverse transformation in the vertical direction is a 1-bit flag, 'ver_transform_skip_flag'. The encoder can encode at least one of 'hor_transform_skip_flag' or 'ver_transform_skip_flag' according to the shape of the current block. In addition, the decoder can determine whether or not to omit the inverse transform in the horizontal direction or in the vertical direction using at least one of "hor_transform_skip_flag" or "ver_transform_skip_flag".
[0352]
[0353] It can be set to omit the inverse transform for any address of the current block depending on a partition type of the current block. For example, if the current block is generated through a binary tree-based partitioning, the inverse transform in the horizontal direction or vertical direction can be omitted. That is, if the current block is generated by binary tree-based partitioning, it can be determined that the inverse transform for the current block is omitted in at least one of a horizontal direction or a vertical direction without encoding / decoding information. (for example, transform_skip_flag, hor_transform_skip_flag, ver_transform_skip_flag) which indicates whether or not the reverse transformation of the current block is omitted.
[0354]
[0355] Although the above described embodiments have been described based on a series of stages or flow diagrams, they do not limit the order of time series of the invention, and may be performed simultaneously or in different orders as necessary. In addition, each of the components (e.g., units, modules, etc.) that constitute the block diagram in the embodiments described above can be implemented by a hardware or software device, and a plurality of components. Or a plurality of components can be combined and implemented by a single hardware or software device. The above described embodiments can be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer readable recording medium. The computer readable recording medium can include one of or a combination of program commands, data files, data structures and the like. Examples of computer readable media include magnetic media such as hard drives, floppy disks and magnetic tape, optical recording media such as CD-ROM and DVD, magneto-optical media such as optical floppy disks, media, and hardware devices specifically. configured to store and execute program instructions such as ROM, RAM, flash memory and the like. The hardware device can be configured to operate as one or more software modules to perform the process according to the present invention and vice versa.
[0356]
[0357] Industrial applicability
[0358]
[0359] The present invention can be applied to electronic devices that can encode / decode a video.
权利要求:
Claims (13)
[1]
1. A method for decoding a video, characterized in that it comprises:
determine whether to divide a current block with quadruple tree partitioning; determine whether to split the current block with binary tree partitioning when the current block is not divided with quadruple tree partitioning;
determine a type of binary tree partition for the current block when it is determined to divide the current block with binary tree partitioning; Y
divide the current block into two partitions according to the type of binary tree partition determined.
[2]
2. The method of claim 1, wherein the binary tree partition type comprises an asymmetric partition type in which two partitions generated by dividing the current block are asymmetric.
[3]
3. The method of claim 2, wherein if the current block is divided into asymmetric partitions, quadruple tree partitioning or binary tree partitioning is not allowed for each of the generated partitions as a result of a division of the current block.
[4]
The method of claim 1, wherein the binary tree partition type is determined based on at least one of information in a partitioning direction of the current block and information with respect to sizes of the two current partitions.
[5]
5. The method of claim 1, wherein determining the type of binary tree partition comprises:
determine if the current block is divided in a symmetrical way; Y
determine a type of asymmetric partition of the current block when it is determined that the current block is not divided in the symmetric way.
[6]
6. The method of claim 1, wherein the type of binary tree partition is determined based on index information signaled by a bit stream.
[7]
7. A method to encode a video, characterized in that it comprises:
determine whether to divide a current block with quadruple tree partitioning; determine whether to split the current block with binary tree partitioning when the current block is not divided with quadruple tree partitioning; determine a type of binary tree partition for the current block when it is determined to divide the current block with binary tree partitioning; Y
divide the current block into two partitions according to the type of binary tree partition determined.
[8]
8. The method of claim 7, wherein the binary tree partition type comprises an asymmetric partition type in which two partitions generated by dividing the current block are asymmetric.
[9]
9. The method of claim 8, wherein if the current block is divided into asymmetric partitions, quadruple tree partitioning or binary tree partitioning is not allowed for each of the generated partitions as a result of a division of the current block.
[10]
The method of claim 7, wherein at least one of information on a partitioning direction of the current block and information regarding sizes of the two current partitions is coded based on the type of binary tree partition determined.
[11]
11. The method of claim 7, wherein determining the type of binary tree partition comprises:
determine if the current block is divided in a symmetrical way; Y
determine a type of asymmetric partition of the current block when it is determined that the current block is not divided in the symmetric way.
[12]
12. The method of claim 7, wherein the method further comprises encoding index information that specifies the type of binary tree partition.
[13]
13. An apparatus for decoding a video, characterized in that it comprises:
an instantaneous partitioning unit to determine whether to divide a current block with quadruple tree partitioning, to determine whether to divide the current block with binary tree partitioning when the current block is not divided with quadruple tree partitioning, to determine a type of binary tree partition for the current block when it is determined to divide the current block with the binary tree partitioning, and divide the current block into two partitions according to the particular binary tree partition type.
类似技术:
公开号 | 公开日 | 专利标题
ES2703607B2|2021-05-13|Method and apparatus for processing video signals
ES2692864B1|2019-10-21|METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNS
ES2699691A2|2019-02-12|Video signal processing method and device
US11095892B2|2021-08-17|Method and apparatus for processing video signal
ES2710234B1|2020-03-09|Procedure and device for processing video signals
ES2737874B2|2020-10-16|METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNAL
US10904581B2|2021-01-26|Method and apparatus for processing video signal
ES2711189A2|2019-04-30|METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNALS |
ES2711474A2|2019-05-03|Method and device for processing video signal
ES2699723A2|2019-02-12|Video signal processing method and device
ES2710807A2|2019-04-26|Method and apparatus for processing video signal
ES2699749B2|2020-07-06|Method and apparatus for processing a video signal
ES2711230A2|2019-04-30|Method and apparatus for processing video signal
ES2737845B2|2021-05-19|METHOD AND APPARATUS TO PROCESS VIDEO SIGNAL
US20190387226A1|2019-12-19|Video signal processing method and apparatus
ES2703458A2|2019-03-08|Video signal processing method and device
ES2711223A2|2019-04-30|Method and device for processing video signal
US20210195189A1|2021-06-24|Method and apparatus for processing video signal
ES2711473A2|2019-05-03|Method and apparatus for processing video signal
ES2711209A2|2019-04-30|Method and device for processing video signal
KR20190133628A|2019-12-03|Method and apparatus for processing a video
同族专利:
公开号 | 公开日
WO2018056702A1|2018-03-29|
US20210067810A1|2021-03-04|
EP3518548A4|2020-03-25|
US10869065B2|2020-12-15|
EP3518548A1|2019-07-31|
EP3518548B1|2021-12-15|
US20210076078A1|2021-03-11|
ES2711230R1|2021-04-07|
CN109716775A|2019-05-03|
US20190268623A1|2019-08-29|
KR20180031615A|2018-03-28|
US20210076077A1|2021-03-11|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

KR20100095992A|2009-02-23|2010-09-01|한국과학기술원|Method for encoding partitioned block in video encoding, method for decoding partitioned block in video decoding and recording medium implementing the same|
KR101484280B1|2009-12-08|2015-01-20|삼성전자주식회사|Method and apparatus for video encoding by motion prediction using arbitrary partition, and method and apparatus for video decoding by motion compensation using arbitrary partition|
CN106060558B|2010-04-13|2019-08-13|Ge视频压缩有限责任公司|Decoder, the method for rebuilding array, encoder, coding method|
CN108668137A|2010-09-27|2018-10-16|Lg 电子株式会社|Method for dividing block and decoding device|
KR101519557B1|2013-12-27|2015-05-13|연세대학교 산학협력단|Apparatus and method for fast Intra Prediction Algorithm|
US10382795B2|2014-12-10|2019-08-13|Mediatek Singapore Pte. Ltd.|Method of video coding using binary tree block partitioning|
WO2016090568A1|2014-12-10|2016-06-16|Mediatek Singapore Pte. Ltd.|Binary tree block partitioning structure|
KR101644969B1|2015-01-21|2016-08-03|한국과학기술원|Method for decoding partitioned block in video decoding and recording medium implementing the same|
US10212444B2|2016-01-15|2019-02-19|Qualcomm Incorporated|Multi-type-tree framework for video coding|
WO2017205700A1|2016-05-25|2017-11-30|Arris Enterprises Llc|Binary, ternary and quad tree partitioning for jvet coding of video data|
CA3025340A1|2016-05-25|2017-11-30|Arris Enterprises Llc|General block partitioning method|
EP3349454A1|2017-01-11|2018-07-18|Thomson Licensing|Method and device for coding a block of video data, method and device for decoding a block of video data|JP2021519035A|2018-04-19|2021-08-05|エルジー エレクトロニクス インコーポレイティド|Video processing method and equipment for this|
WO2019234612A1|2018-06-05|2019-12-12|Beijing Bytedance Network Technology Co., Ltd.|Partition tree with four sub-blocks symmetric or asymmetric|
US20210274175A1|2018-06-27|2021-09-02|Electronics And Telecommunications Research Institute|Image encoding/decoding method and device, and recording medium in which bitstream is stored|
US11272198B2|2019-01-30|2022-03-08|Tencent America LLC|Method and apparatus for improved sub-block partitioning intra sub-partitions coding mode|
法律状态:
2019-04-30| BA2A| Patent application published|Ref document number: 2711230 Country of ref document: ES Kind code of ref document: A2 Effective date: 20190430 |
2021-04-07| EC2A| Search report published|Ref document number: 2711230 Country of ref document: ES Kind code of ref document: R1 Effective date: 20210329 |
优先权:
申请号 | 申请日 | 专利标题
KR20160120080|2016-09-20|
KR20160120081|2016-09-20|
PCT/KR2017/010354|WO2018056702A1|2016-09-20|2017-09-20|Method and apparatus for processing video signal|
[返回顶部]